﻿#pragma warning disable 649    // disable compiler warnings about unassigned fields

namespace Groceries.Web
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Data.Objects.DataClasses;
    using System.Linq;
    using System.Web.DomainServices;
    using System.Web.Ria;
    using System.Web.Ria.Services;


    // The MetadataTypeAttribute identifies ItemMetadata as the class
    // that carries additional metadata for the Item class.
    [MetadataTypeAttribute(typeof(Item.ItemMetadata))]
    public partial class Item
    {

        // This class allows you to attach custom attributes to properties
        // of the Item class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ItemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ItemMetadata()
            {
            }

            public Guid ID;

            public EntityCollection<ItemsLocation> ItemsLocations;

            public string Name;

            public decimal Price;

            public EntityCollection<RecipesItem> RecipesItems;

            public EntityCollection<ShoppingListsItem> ShoppingListsItems;

            [Include]
            public Supplier Supplier;

            public Nullable<Guid> SupplierID_;
        }
    }

    // The MetadataTypeAttribute identifies ItemsLocationMetadata as the class
    // that carries additional metadata for the ItemsLocation class.
    [MetadataTypeAttribute(typeof(ItemsLocation.ItemsLocationMetadata))]
    public partial class ItemsLocation
    {

        // This class allows you to attach custom attributes to properties
        // of the ItemsLocation class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ItemsLocationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ItemsLocationMetadata()
            {
            }

            public Item Item;

            public Guid ItemID_;

            public Location Location;

            public Guid LocationID_;

            public Store Store;

            public Guid StoreID_;
        }
    }

    // The MetadataTypeAttribute identifies LocationMetadata as the class
    // that carries additional metadata for the Location class.
    [MetadataTypeAttribute(typeof(Location.LocationMetadata))]
    public partial class Location
    {

        // This class allows you to attach custom attributes to properties
        // of the Location class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class LocationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private LocationMetadata()
            {
            }

            public Guid ID;

            public EntityCollection<ItemsLocation> ItemsLocations;

            public string Name;

            public EntityCollection<StoresLocation> StoresLocations;
        }
    }

    // The MetadataTypeAttribute identifies RecipeMetadata as the class
    // that carries additional metadata for the Recipe class.
    [MetadataTypeAttribute(typeof(Recipe.RecipeMetadata))]
    public partial class Recipe
    {

        // This class allows you to attach custom attributes to properties
        // of the Recipe class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class RecipeMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipeMetadata()
            {
            }

            public Guid ID;

            public string Name;

            public EntityCollection<RecipesItem> RecipesItems;
        }
    }

    // The MetadataTypeAttribute identifies RecipesItemMetadata as the class
    // that carries additional metadata for the RecipesItem class.
    [MetadataTypeAttribute(typeof(RecipesItem.RecipesItemMetadata))]
    public partial class RecipesItem
    {

        // This class allows you to attach custom attributes to properties
        // of the RecipesItem class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class RecipesItemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RecipesItemMetadata()
            {
            }

            public Item Item;

            public Guid ItemID_;

            public Nullable<short> Quantity;

            public Recipe Recipe;

            public Guid RecipeID_;
        }
    }

    // The MetadataTypeAttribute identifies ShoppingListMetadata as the class
    // that carries additional metadata for the ShoppingList class.
    [MetadataTypeAttribute(typeof(ShoppingList.ShoppingListMetadata))]
    public partial class ShoppingList
    {

        // This class allows you to attach custom attributes to properties
        // of the ShoppingList class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ShoppingListMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ShoppingListMetadata()
            {
            }

            public DateTime DateModified;

            public Guid ID;

            [Required()]
            public string Name;

            [Include]
            public EntityCollection<ShoppingListsItem> ShoppingListsItems;
        }
    }

    // The MetadataTypeAttribute identifies ShoppingListsItemMetadata as the class
    // that carries additional metadata for the ShoppingListsItem class.
    [MetadataTypeAttribute(typeof(ShoppingListsItem.ShoppingListsItemMetadata))]
    public partial class ShoppingListsItem
    {

        // This class allows you to attach custom attributes to properties
        // of the ShoppingListsItem class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class ShoppingListsItemMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ShoppingListsItemMetadata()
            {
            }

            [Include]
            public Item Item;

            public Guid ItemID_;

            public Nullable<short> Quantity;

            public Nullable<Guid> RecipeID_;

            public ShoppingList ShoppingList;

            public Guid ShoppingListID_;
        }
    }

    // The MetadataTypeAttribute identifies StoreMetadata as the class
    // that carries additional metadata for the Store class.
    [MetadataTypeAttribute(typeof(Store.StoreMetadata))]
    public partial class Store
    {

        // This class allows you to attach custom attributes to properties
        // of the Store class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class StoreMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private StoreMetadata()
            {
            }

            public Guid ID;

            public EntityCollection<ItemsLocation> ItemsLocations;

            public string Name;

            public EntityCollection<StoresLocation> StoresLocations;
        }
    }

    // The MetadataTypeAttribute identifies StoresLocationMetadata as the class
    // that carries additional metadata for the StoresLocation class.
    [MetadataTypeAttribute(typeof(StoresLocation.StoresLocationMetadata))]
    public partial class StoresLocation
    {

        // This class allows you to attach custom attributes to properties
        // of the StoresLocation class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class StoresLocationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private StoresLocationMetadata()
            {
            }

            public Location Location;

            public Guid LocationID_;

            public Nullable<short> LocationOrder;

            public Store Store;

            public Guid StoreID_;
        }
    }

    // The MetadataTypeAttribute identifies SupplierMetadata as the class
    // that carries additional metadata for the Supplier class.
    [MetadataTypeAttribute(typeof(Supplier.SupplierMetadata))]
    public partial class Supplier
    {

        // This class allows you to attach custom attributes to properties
        // of the Supplier class.
        //
        // For example, the following marks the Xyz property as a
        // required field and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz;
        internal sealed class SupplierMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private SupplierMetadata()
            {
            }

            public Guid ID;

            public EntityCollection<Item> Items;

            public string Name;
        }
    }
}

#pragma warning restore 649    // re-enable compiler warnings about unassigned fields
